package cn.calin.day05.demo36Dou;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.SplittableRandom;

/*
    斗地主案例：
        1.准备牌
        2.洗牌
        3.发牌
        4.看牌
 */
public class DouDiZhu {
    public static void main(String[] args) {
        //1.准备牌
        //定义一个存储54张牌的ArrayList集合，泛型使用String
        ArrayList<String> poker=new ArrayList<>();
        //定义两个数组一个数组存储牌的花色，一个数组存储牌的序号
        String[] colors={"♠","♣","♥","♦"};
        String[] numbers={"2","A","K","Q","J","10","9","8","7","6","5","4","3",};
        //先把大王和小王存储到poker集合中
        poker.add("大王");
        poker.add("小王");
        //循环嵌套俩个数组，组装52张牌
        for (String number : numbers) {
            for (String color : colors) {
                poker.add(color+number);//把组装好的牌存储在poker集合里

            }
        }
        /*System.out.println(poker);
        System.out.println(poker.size());*/

        //2.洗牌
        //使用集合中的shuffle中的方法
        //static void shuffle(List<?> list)使用默认随机源指定列表进行置换。
        Collections.shuffle(poker);//洗牌
        System.out.println(poker);

        //3.发牌
        //定义四个集合，存储玩家的牌和底牌
        ArrayList<String> player01=new ArrayList<>();
        ArrayList<String> player02=new ArrayList<>();
        ArrayList<String> player03=new ArrayList<>();
        ArrayList<String> DiPai=new ArrayList<>();

        //遍历扑克集合获取每一张牌 使用poker集合的索引%3给三个玩家轮流发牌
        //剩余三张牌给底牌
        //注意：先判断底牌是否(i>=51)，否则牌就没了
        for (int i=0;i<poker.size();i++){
            //获取每一张牌
            String p= poker.get(i);
            if (i<=50){
                if (i%3==0){
                    player01.add(p);
                }else if (i%3==1){
                    player02.add(p);
                }else if (i%3==2){
                    player03.add(p);
                }
            }
            else DiPai.add(p);
        }
        //看牌
        System.out.println("一号玩家："+player01);
        System.out.println("二号玩家："+player02);
        System.out.println("三号玩家："+player03);
        System.out.println("底牌："+DiPai);


    }
}
